home *** CD-ROM | disk | FTP | other *** search
/ Cre@te Online 2000 December / Cre@teOnline CD05.iso / MacSoft / XML ConsoleMax.sea / XML ConsoleMax / Required / esc.jar / com / extensibility / xml / XSDLWriter$ElemProxy.class (.txt) < prev    next >
Encoding:
Java Class File  |  2000-06-30  |  3.5 KB  |  86 lines

  1. package com.extensibility.xml;
  2.  
  3. import java.util.Enumeration;
  4.  
  5. public class XSDLWriter$ElemProxy extends XSDLWriter.DeclProxy {
  6.    // $FF: synthetic field
  7.    final XSDLWriter this$0;
  8.    ElementDeclaration decl;
  9.    XSDLWriter.AttrProxy attrProxy;
  10.  
  11.    XSDLWriter$ElemProxy(XSDLWriter var1) {
  12.       super(var1);
  13.       this.this$0 = var1;
  14.       this.attrProxy = new XSDLWriter.AttrProxy(this.this$0);
  15.    }
  16.  
  17.    XSDLWriter$ElemProxy(XSDLWriter var1, ElementDeclaration var2) {
  18.       super(var1);
  19.       this.this$0 = var1;
  20.       this.attrProxy = new XSDLWriter.AttrProxy(this.this$0);
  21.       this.setDecl(var2);
  22.    }
  23.  
  24.    void setDecl(ElementDeclaration var1) {
  25.       this.decl = var1;
  26.       super.setDecl(var1);
  27.    }
  28.  
  29.    public void write(SXE var1, boolean var2) {
  30.       var1.writeElem("element");
  31.       var1.writeAttr("name", this.decl.getName());
  32.       ContentModel var3 = this.decl.getEffectiveModel();
  33.       Enumeration var4 = this.decl.getAttributes(false);
  34.       boolean var5 = var4.hasMoreElements();
  35.       if (var3.isTextOnly() && !var5) {
  36.          XSDLWriter.access$2000171(this.this$0, var1, this.decl, this.decl.getDataType());
  37.       }
  38.  
  39.       if (!var3.isTextOnly() || var5) {
  40.          var1.writeElem("complexType", -1);
  41.          if (var3.isTextOnly() && this.decl.getDataType() != null) {
  42.             String var6 = this.this$0.schema.getDataTypeSource(this.decl.getDataType());
  43.             var1.writeAttr("base", var6);
  44.          }
  45.       }
  46.  
  47.       if (var3.isEmpty()) {
  48.          var1.writeAttr("content", "empty");
  49.       } else if (var3.isMixed()) {
  50.          var1.writeAttr("content", "mixed");
  51.       } else if (var3.isTextOnly()) {
  52.          if (var5) {
  53.             var1.writeAttr("content", "textOnly");
  54.          }
  55.       } else if (var3.isTagsOnly()) {
  56.          var1.writeAttr("content", "elementOnly");
  57.       }
  58.  
  59.       if (var2) {
  60.          ((XSDLWriter.DeclProxy)this).writeComments(var1);
  61.       }
  62.  
  63.       if (var3.isMixed()) {
  64.          ContentModelTermEnum var8 = ((ContentModelTerm)var3).getLeafTerms();
  65.  
  66.          while(var8.hasMoreElements()) {
  67.             ContentModelTerm var7 = (ContentModelTerm)var8.nextElement();
  68.             if (var7.isTermReference()) {
  69.                var1.writeElem("element", true);
  70.                XSDLWriter.access$2000271(this.this$0, var1, var7.getTerm(), var7.getLocalTag());
  71.             } else if (var7.isPCDATATerm()) {
  72.             }
  73.          }
  74.       } else if (var3.isTagsOnly()) {
  75.          this.this$0.writeModel(var1, var3, false);
  76.       }
  77.  
  78.       this.this$0.writeAttrGroup(var1, this.decl.getAttributes(false), this.attrProxy, var2);
  79.       if (!var3.isTextOnly() || var5) {
  80.          var1.flush("complexType");
  81.       }
  82.  
  83.       var1.flush("element");
  84.    }
  85. }
  86.